Adrenalin v0.70alpha2OS Windows (95 и выше).Содержание.
Adrenalin - файлэхопроцессор для платформы Win32,
распространяемый вместе с исходными текстами на правах freeware
(Вы можете использовать данную программу/исходные тексты и распространять
её/исходники без ограничений, при условии, что Вы не извлекаете из
этого прибыли без ведома автора). Автор программы - Андрей Купришов
(Andrey Kuprishov, 2:5023/27@fidonet).
|
Adrenalin предназначен для использования в FTN-сетях (сетях,
построенных и функционирующих по принципу сети Fidonet). Поэтому технические
аспекты работы таких сетей останутся за рамками данной документации, а основной
акцент будет сделан на тех терминах, которые используются непосредственно при
работе файлэхопроцессора.
FTN-сетей используются файлэхи.
Файлэха обладает как минимум именем, характеризующим тематику файлов, которые
по ней передаются (например, файлэха BOOK служит для обмена файлами, содержащими
тексты различных литературных произведений).
tic).
Тик-файл содержит информацию о файле данных: кто его отправил, в какую файлэху,
когда, с каким описанием и так далее. Задача файлэхопроцессора в общем случае
сводится к переносу файла из каталога, в который складывает файлы мэйлер, в
каталог соответствующей файлэхи, а затем к подготовке информации для мэйлера, если
данный файл должен быть отправлен другим подписчикам файлэхи. На этапе подготовки
информации мэйлеру файлэхопроцессор создаёт новые тик-файлы для каждого подписчика.
toss).
hatch).
purge).
Adrenalin (или на один из псевдонимов
используемого Вами файлэхопроцессора, например Allfix). Адреналин ищет подобные
письма в указанном ему netmail-каталоге, и по возможности отвечает на них.
Затрудняюсь охарактеризовать этот процесс одним словом, но он тоже играет
немаловажную роль в функционировании файлэх.
2.1. Обмен информацией с мэйлером.
Для того, чтобы подписчики получили файлы (и тики), файлэхопроцессор должен "сообщить" мэйлеру, кому какие файлы следует отправить. Существует ряд способов подготовки подобной информации, как то:
|
2.1.1. Binkley-style Outbound.
Binkley-style Outbound
можно в SU.FIDOTECH FAQ.
FileBoxes можно в документации к
мэйлеру T-Mail от Andy Elkin.
adrenalin.exe), следующие конфигурационные файлы: adrenalin.cfg, links.xml и
areas.xml. Файл adrenalin.cfg является обычным текстовым файлом, файлы links.xml и
areas.xml - xml-файлы. Для успешного чтения xml-файлов Адреналину необходима библиотека
MiniSAX.dll, она должна находиться в том же каталоге, в котором находится adrenalin.exe,
в каталоге System32 или в одном из каталогов, определённых в переменной окружения PATH.
Данная библиотека входит в стандартную поставку Адреналина.
about_xml.txt в подкаталоге docs
находится небольшое описание xml (это фрагмент письма из
конференции ADRENALIN.SUPPORT). Рекомендую ознакомиться
с ним, прежде чем Вы приступите к редактированию
xml-конфигов.
XML, некоторые символы необходимо кодировать при их использовании
внутри тагов или же в значениях атрибутов. Подобные символы перечислены
ниже:
|
Вася <ZIZOP> Пупкин,
то в links.xml его придётся указать следующим образом:
<sysop>Вася <ZIZOP> Пупкин</sysop>
Вася & Co,
то в links.xml его необходимо указать так:
<sysop>Вася & Co</sysop>
adrenalin.cfg содержит основные настройки системы.
Он является обычным текстовым файлом (в следующих версиях он будет заменён на xml-файл).
Формат файла adrenalin.cfg выглядит следующим образом:
<ключевое слово> <значение> [<значение> ...]
ADDRESS и address считаются одинаковыми ключевыми
словами). adrenalin.cfg может содержать комментарии. Комментарий начинается с
символа "точка с запятой". Часть строки, являющаяся комментарием, игнорируется Адреналином.
;"
(например, это имя файла или каталога), то это значение необходимо заключить
в двойные кавычки.
\' не обязательно.
D:\FIDO\Adrenalin,
а путь к netmail-сообщениям указан в виде "..\Mail", то поиск сообщений будет
производиться в каталоге D:\FIDO\Mail.
adrenalin.cfg:
|
links.xml - выглядит так:
<links>
<link>
...
</link>
<link>
...
</link>
...
</links>
Корневым элементом документа является элемент links.
У него нет атрибутов, но он может содержать любое количество подэлементов link.
Элемент link (являющийся подэлементом элемента links)
также не имеет атрибутов, но имеет следующие подэлементы:
name
<name>Vasya Pupkin</name>
address
[[Zone:]Net/]Node[.Point][@Domain]
<address>27.999</address>
useAKA
АКА из наших использовать для общения с линком.
Cодержит строку, описывающую АКА.
Адрес должен быть одним из ваших АКА-адресов или основным адресом;
если для линка не указан соответствующий АКА-адрес, то он
будет выбран автоматически (будет использоваться максимально
близкий адрес, причём анализ "близости" адресов происходит по
схеме: домен -> зона -> сеть -> нода).
<useAKA>27.0</useAKA>
outbound
type
|
- |
binkley или fileBoxes,
по умолчанию binkley
|
flavour
|
- |
как мэйлеру следует отправлять файлы,
возможные значения атрибута для Bink-style Outbound:
normal, direct, crash,
hold, immediate;
для FileBoxes:
normal, hold;
по умолчанию hold.
|
<outbound type="binkley" flavour="direct" />
security
password
netmail для данного линка.
sendPriority
receivePriority
group
group в security.
<security>
<password>superpwd</password>
<sendPriority>10</sendPriority>
<receivePriority>10</receivePrioriry>
<group>PICS</group>
<group>MUSIC</group>
</security>
allowAreaCreation
path
AutoCreated
основного файла конфигурации.
defaultGroup
sendPriority
receivePriority
<allowAreaCreation>
<path>..\AreasFromLink</path>
<defaultGroup>NewFechos</defaultGroup>
<receivePriority>10</receivePrioriry>
</allowAreaCreation>
status
passive
|
- |
пассивный режим, в этом режиме система может
посылать нам файлы, но сама от нас файлы не получает; данный
режим линк может включать и отключать дистанционно,
посредством менеджера подписки, используя команды %lock
и %unlock.
|
unavailable
|
- | режим недоступности, в этом режиме все операции с данной системой полностью заморожены (мы не посылаем и не получаем от неё файлы, и не обрабатываем сообщения от этой системы); отключить данный режим дистанционно нельзя. |
<status>passive</status>
robotName
Allfix
<robotName>Adrenalin</robotName>
availAreas
<availAreas>C:\FIDO\AvailAreas\areas_from_27.999.lst</availAreas>
areas.xml - выглядит так:
<areas>
<group ...>
<area ...>
...
</area>
...
</group>
<group ...>
...
</group>
...
</areas>
Корневым элементом документа является элемент areas.
У него нет атрибутов, но он может содержать любое количество подэлементов group.
Элемент group описывает группу областей. Помимо ряда атрибутов (см. ниже)
он может содержать любое количество подэлементов area, каждый из которых
описывает файлэху.
group
name
|
- |
имя группы, начиная с версии 0.70alpha1
может быть произвольной последовательностью символов;
имена групп не различаются по регистру букв.
|
description
|
- | описание группы; данный атрибут не является обязательным. |
area
name
|
- | имя области. |
description
|
- | описание области (необязательный атрибут). |
path
|
- | путь к файлам области. |
sendPriority
|
- |
приоритет на отправку файлов в файлэху;
линк сможет отправить файл лишь в том случае, если его приоритет
на отправку не меньше данного значения.
Значение по умолчанию: 0 |
receivePriority
|
- |
приоритет на получение файлов по файлэхе;
линк получит файл лишь в том случае, если его приоритет
на получение не меньше данного значения.
Значение по умолчанию: 0 |
area может содержать следующие подэлементы:
passthrough
passthrough-областям).
vetoManualPurge
veto)
ручная зачистка по маске, данная опция введена для того, чтобы избежать
случайного уничтожения содержимого области при указании
в команде PURGE масок областей, например:
Adrenalin.exe purge *
openForResend
%RESEND, даже если пользователь не подписан
на данную область.
outbound
outbound
определён у самих линков.
type может иметь значение либо
binkley, либо fileBoxes.
binkley-outbound,
а в параметрах эхи указан fileBoxes, то для всех способов
отправки файлов линку, отличных от hold
(direct, crash, immediate)
будет использован способ normal (FileBoxes
просто не поддерживает способы, отличные от normal и
hold).
linked
routing,
позволяющий явно указать возможности линка. Возможные значения
атрибута:
| send | - | линк может только посылать файлы в область, независимо от того, какими приоритетами он обладает. |
| receive | - | линк может только получать файлы из области, независимо от того, какими приоритетами он обладает. |
| bidirectional | - | линк может и получать, и посылать файлы, независимо от того, какими приоритетами он обладает. |
linked.
<linked>27.1</linked>
<linked>100:1/1.76@Somenet</linked>
<linked routing="receive">11</linked>
<areas>
<group name="KLG">
<area name="NET5023"
path="..\FileEchos\NET5023"
sendPriority="50">
<vetoManualPurge />
<linked>11</linked>
<linked>27.16</linked>
<linked>27.17</linked>
<linked>27.15</linked>
<linked>27.52</linked>
<linked>27.55</linked>
<linked>27.59</linked>
<linked>27.2500</linked>
<linked>27.62</linked>
<linked>27.84</linked>
<linked>27.86</linked>
<linked>47</linked>
<linked>35</linked>
</area>
</group>
<group name="33's">
<area name="MAD.FILES"
path="..\FileEchos\MAD.FILES"
outbound="fileBoxes"
sendPriority="200">
<linked>27.11</linked>
<linked>27.62</linked>
<linked>27.45</linked>
<linked>17</linked>
<linked>27.55</linked>
<linked routing="send">33</linked>
<linked>27.84</linked>
<linked>27.86</linked>
<linked>47</linked>
</area>
</group>
</areas>
4.1. Тоссинг входящих тиков и файлов.
При запуске файлэхопроцессора с параметромtoss
он просматривает каталог входящих файлов (Inbound) и
тоссит тик-файлы и соответствующие файлы данных:
adrenalin.exe toss
Inbound-каталог
в поиске файлов, удовлетворяющих маске *.ti?;
это позволяет не пропустить те тик-файлы, которые были переименованы
мэйлером при получении тик-файла с таким же именем (а обычно в таком случае мэйлер
увеличивает последнюю букву имени файла, который уже лежит
в Inbound-каталоге).
Bink-style outbound,
либо с помощью FileBoxes).
newfiles.txt
в каталоге Адреналина. Для каждого обработанного файла данных
в этот файл помещаются следующие строки:
Area <имя файлэхи>
File <имя файла>
Size <размер файла, в байтах>
Desc <описание>
Origin <адрес, с которого файл был захатчен>
Uplink <адрес, с которого этот файл пришёл на Вашу станцию>
В случае автосоздания новой файловой области происходит
обновление файла newareas.txt, и в него помещается строка
следующего содержания:
Fileecho area <имя области> created by <адрес отправителя тика>
traffic.dat.
В первую строку файла записывается время, начиная с которого ведётся учёт
трафика, последующие строки имеют вид:
<имя области> <трафик в байтах>
traffic.pl. Она входит в стандартную поставку файлэхопроцессора.
Bink-style Outbound, может возникнуть ситуация,
когда с этой же системой работает другое приложение (например, в это время
мэйлер выполняет с системой обмен файлами), и Bink-style Outbound
заблокирован (в нём существует флажок занятости, bsy-файл).
В случае обнаружения флага занятости Адреналин будет работать с так называемым
"pending outbound" вместо основного, используя для этого
подкаталог bso.tmp в том каталоге, где находится adrenalin.exe.
При очередном тоссинге Адреналин в первую очередь проверяет pending outbound
на наличие в нём файлов и добавляет их содержимое к настоящему
Bink-style Outbound.
pending outbound)
используется также и при хатчинге файлов.
tossbad Адреналин выполняет тоссинг "плохих" тиков.
Команда по своему действию аналогична команде toss, за исключением
того, что сканируется BadTics-каталог. Поиск файлов с данными
осуществляется в Inbound-каталоге. Команда предназначена для
случаев, когда, например, тик-файлы считались некорректными из-за
неправильной настройки программы (например, неправильно прописанного пароля)
или же файлы для тиков отсутствовали, и тик-файлы были перемещены в BadTics
каталог, а файлы данных прибыли с опозданием.
4.2. Обработка нетмэйл-запросов к Адреналину.
По командеfix Адреналин обрабатывает нетмэйл-запросы:
adrenalin.exe fix
Netmail-каталоге.
Запрос - письмо, имя адресата которого совпадает с одним из псевдонимов программы или
с именем Adrenalin, а адрес назначения совпадает с одним из адресов
Вашей системы). Адреналин обрабатывает найденные запросы и создаёт необходимые письма-ответы
в том же каталоге. Письма запросов удаляются либо получают атрибут Received,
в зависимости от значения параметра KillProcessedMail (см. описание параметров
файла adrenalin.cfg).
|
Subject (тема) письма-запроса должен стоять
пароль данного линка.
4.3. Хатчинг файлов в файлэху.
По командеhatch файлэхопроцессор осуществляет
хатчинг файла в указанную файлэху (с его копированием в соответствующий
каталог, созданием тик-файлов для подписчиков, подготовкой файлов к отправке линкам).
hatch <file> <area> <desc> [-r <Replaces>] [-L]
-L, то файл не будет
перенесён в каталог файлэхи, а в BSO-файлах будет указано
его полное имя.
@' при указании в командной строке.
<file> [<description>]
...
to_hatch.lst содержит следующие строки:
super1.zip Super-Puper1
super2.zip
hatch @to_hatch.lst MYGOODAREA "some desc"
MYSUPERAREA будут захатчены
файлы super1.zip (с описанием Super-Puper1, взятым из файла)
и super2.zip (с описанием some desc, взятым из командной строки).
Replaces, то в тик-Файлы будет
добавлен параметр Replaces, но на нашей системе файл НЕ будет заменён.
4.4. Пуржинг (зачистка) файлэх.
Адреналин поддерживает три основных режима зачистки файлэх. Прежде чем рассмотреть каждый из них, необходимо заметить, что в версии0.70alpha2
зачистка корректно работает лишь с Bink-style Outbound, поэтому я крайне не рекомендую
использовать её даже в случае, если только часть линков или избранные области
используют FileBoxes. Команды зачистки:
purge
|
- |
"очищает" файлэхи, т.е. удаляет из них те файлы, для которых
отсутствуют тик-файлы (эта предпосылка с большой долей вероятности
позволяет считать, что подписчики получили файлы).
Данную команду можно использовать двумя способами:
|
||||
timepurge
|
- |
удаляет из Bink-style Outbound ссылки на тики и файлы старше
указанного значения, а также удаляет старые тики.
Формат команды: <hours> [<mask>]+
где <hours> - время (в часах), по которому оценивается
степень старости тиков;
<mask> - маска для адресов линков, в маске
возможно использование спецсимволов '*' (любая, даже пустая,
последовательность символов) и '?' (один любой символ).
Например, */27.* для обработки всех узлов с номером 27.
Если маска не указана, будут обработаны все линки.
|
||||
basepurge
|
- |
удаляет из файлэх файлы старше указанного срока. Информация о
времени прихода файлов берётся из files.db.
Формат команды: <days> [areamask]+
где <days> - время (в днях), по которому оценивается
возраст файлов;
<areamask> - маска для областей.
Если ни одна маска не указана, то будут зачищены все области, кроме тех, на которые наложено вето. В данном режиме пуржинга из таких областей нельзя удалить файлы, даже непосредственно указав имена областей. По окончании зачистки создаётся письмо сисопу со списком удалённых файлов. Данная команда не проводит корректировку BSO и не удаляет тики.
|
4.5. Дополнительные режимы работы.
Адреналин поддерживает ряд других, ещё не освещённых выше команд.
|
ADRENALIN.SUPPORT
(даже тем, кто ни разу не написал в эху).